/**
 * PHOSIDE: PHosphorylation Site IDentification Engine.
 * Copyright 2009 Digital Biology Lab, University of Missouri.
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 3 of the License, or (at your option) any later
 * version. <p/> This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more
 * details.
 */

package phoside.ui.task;

import phoside.util.IOUtil;

/**
 *
 */
public class SerializeTask extends AbstractTask {
    private final String dir;
    private final String format;

    public SerializeTask(final Object obj, String dir, String format) {
            super("Serializing");
            this.obj = obj;
            this.dir = dir;
            this.format = format;
    }

    /**
     * Executes Task.
     */
    //@Override
    public void run() {
            try {
                    taskMonitor.setPercentCompleted(-1);
                    taskMonitor.setStatus("Saving...");
                    IOUtil.serializeObject(obj, dir, format);
                    taskMonitor.setPercentCompleted(100);
                    taskMonitor.setStatus("Saved.");

                    success = true;
            } catch (Exception e) {
                    taskMonitor.setPercentCompleted(100);
                    taskMonitor.setStatus("Failed to save.\n"+e.getMessage());
                    e.printStackTrace();
                    return;
            }
    }

}
